Skip to content

Copilot & Agent configuration#109

Merged
tmikula-dev merged 7 commits intomasterfrom
feature/107-copilot-configuration
Feb 10, 2026
Merged

Copilot & Agent configuration#109
tmikula-dev merged 7 commits intomasterfrom
feature/107-copilot-configuration

Conversation

@tmikula-dev
Copy link
Collaborator

@tmikula-dev tmikula-dev commented Jan 20, 2026

Overview

Adds detailed agent role definitions for DevOps Engineer, Reviewer, SDET, Senior Developer, and Specification Master in the .github/agents/ directory. Introduces copilot-instructions.md file to have copilot instruction setted for the project.

Release Notes

  • Copilot configuration
  • Agents project specific configuration

Related

Closes #107

Summary by CodeRabbit

  • Documentation
    • Added internal role specifications for DevOps, Reviewer, SDET, Senior Developer, and Specification Master, plus comprehensive development and testing guidelines.
    • Clarified coding standards, CI/CD expectations, quality gates, test coverage, collaboration practices, and acceptance criteria.

Note: Internal process docs only; no end-user functionality changes.

@tmikula-dev tmikula-dev self-assigned this Jan 20, 2026
@tmikula-dev tmikula-dev added the enhancement New feature or request label Jan 20, 2026
@github-actions
Copy link

AquaSec has completed a full security repository scan ✅ You can find the analysis results for this PR branch on this overview.
Below is the summary of the findings:

AQUASEC CRITICAL HIGH MEDIUM LOW TOTAL
sast 0 4 2 0 6
vulnerabilities 0 0 0 0 0
iacMisconfigurations 1 2 2 10 15
secrets 0 0 0 0 0
pipelineMisconfigurations 0 0 0 16 16
license 0 0 0 0 0
➡️ Total 1 6 4 26 37

@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Six new documentation files were added under .github/: five role-based agent specifications (DevOps Engineer, Reviewer, SDET, Senior Developer, Specification Master) and a project-level Copilot instructions file describing architecture, quality gates, and testing guidelines.

Changes

Cohort / File(s) Summary
Agent Specifications
.github/agents/devops-engineer.agent.md, .github/agents/reviewer.agent.md, .github/agents/sdet.agent.md, .github/agents/senior-developer.agent.md, .github/agents/specification-master.agent.md
Adds five role contracts detailing mission, inputs/outputs, responsibilities, collaboration, and Definition of Done. Key attention: CI/CD and EventGate responsibilities, QA/coverage targets, route/handler validation rules, mocking/test structure, and contract stability checks.
Copilot Instructions
.github/copilot-instructions.md
Adds project-level copilot guidance: architecture overview, coding standards, handler/writer patterns, Lambda entrypoint and route-dispatch behavior, testing approach, and quality gate requirements. Review for alignment with existing CI/tooling and SPEC.md references.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐇 I hopped through docs with eager cheer,

I scrawled each spec for those who steer,
Roles aligned and rules in sight,
Copilot guided, code takes flight,
A tiny rabbit leaves a light.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Copilot & Agent configuration' clearly summarizes the main change, which involves adding Copilot configuration and AI agent definitions to the repository.
Description check ✅ Passed The pull request description follows the template structure, includes an Overview section, Release Notes section, and links to the related issue #107.
Linked Issues check ✅ Passed The PR successfully fulfills both acceptance criteria from issue #107: includes copilot-instructions.md in .github/ and adds AI agent role definitions in .github/agents/.
Out of Scope Changes check ✅ Passed All changes are scoped to documentation files for Copilot configuration and AI agent definitions, directly addressing the requirements in issue #107.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/107-copilot-configuration

No actionable comments were generated in the recent review. 🎉


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@ci_local.sh`:
- Around line 9-16: The shell invocation currently expands unquoted $(git
ls-files '*.py') which breaks on filenames with whitespace; change the two calls
that pass $(git ls-files '*.py') to Black and Pylint to use NUL-delimited file
lists instead (e.g. use git ls-files -z '*.py' | xargs -0 black --check or git
ls-files -z '*.py' | xargs -0 pylint --fail-under=9.5) or capture into a
NUL-aware array (mapfile -d '' FILES < <(git ls-files -z '*.py') && black
--check "${FILES[@]}"); update the occurrences referencing black and pylint so
filenames are handled safely.
🧹 Nitpick comments (1)
.github/agents/reviewer.agent.md (1)

21-21: Consider the maintenance implications of hardcoded implementation details.

The reference to ROUTE_HANDLERS in event_gate_lambda.py provides clear guidance but will require updates if the implementation pattern changes. Consider adding a note that this specification should be reviewed when architectural changes occur.

Copy link
Contributor

@miroslavpojer miroslavpojer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am missing the copilot rules file for reviewer. He is very helpfull.
I have checked usage of rulesets.

  • I see there is some unsupported setup.
  • When signed commit will be enabled then copilot refuse to work.
  • It can be fixed by bypassing the copilot for PR only.

Could you introduce rulesets, add bypass and update the related handbook pages with this technical tip?

- Handlers: `HandlerApi`, `HandlerToken`, `HandlerTopic`, `HandlerHealth` in `src/handlers/`
- Writers: `WriterEventBridge`, `WriterKafka`, `WriterPostgres` in `src/writers/` (inherit from `Writer` base class)
- Config: `conf/config.json`, `conf/access.json`, `conf/topic_schemas/*.json`
- Routes defined in `ROUTE_HANDLERS` dict in `event_gate_lambda.py`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe

- Terraform scripts are not part of this repository

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reworked my proposed solution of copilot-instructions.md based on my current experience with agent development. I added your suggestion, please see the new version in 674cd11

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

During the time there were several talks about experiences. See latest version in Release Notes Generate, There is last version mixing yours and my style.

- Routes defined in `ROUTE_HANDLERS` dict in `event_gate_lambda.py`

Coding guidelines
- Keep changes small and focused
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd add

- Preserve existing formatting and conventions.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added also in commit: 674cd11

ci_local.sh Outdated
@@ -0,0 +1,29 @@
#!/bin/bash
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice to add also a lint prompt to use this script.

Something like .github/prompts/lint.prompt.md with this content:

---
mode: agent
description: Lint code in the project using Pylint, Black, and mypy tools
---

Your task is to lint the code in the project using Pylint, Black, and mypy tools. Follow the instructions below to perform the linting process.

## Instructions

- run ci_local.sh - The command is going to take a while to finish, make sure you give it enough time to complete before looking for results.
- Analyze the output from each tool and identify any issues or areas for improvement in the code.
- Provide a summary of the linting results, including any errors or warnings found by each tool

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on my experience, having these scripts is counterproductive. It worked much better for me just have inside the configuration file "Quality gates (run after changes, fix only if below threshold)" and commands. It runs them every time after agent work.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.github/workflows/aquasec_repo_scan.yml:
- Around line 28-38: The workflow currently only verifies a static file
("test_aquasec_scan.sarif") and uploads it (steps "Verify SARIF file exists" and
"Upload Scan Results to GitHub Security"), so restore the real AquaSec scanning
steps or make the purpose explicit: either (A) replace the check-and-upload of
test_aquasec_scan.sarif with the original authentication, API call, scanner
invocation, SARIF conversion, and output path used by the "AquaSec Full
Repository Scan" job so actual scanning runs and generates a real SARIF file
before upload, or (B) if this is intended as a test, rename the workflow and job
and add a conditional (e.g., only: branches: [ci-test] or an env flag) and
documentation to clearly mark it as a mock; locate the steps by the step names
"Verify SARIF file exists" and "Upload Scan Results to GitHub Security" and the
test artifact name test_aquasec_scan.sarif to make the necessary edits.

@tmikula-dev
Copy link
Collaborator Author

I am missing the copilot rules file for reviewer. He is very helpfull. I have checked usage of rulesets.

  • I see there is some unsupported setup.
  • When signed commit will be enabled then copilot refuse to work.
  • It can be fixed by bypassing the copilot for PR only.

Could you introduce rulesets, add bypass and update the related handbook pages with this technical tip?

Thanks for the comment! I personally do not find the copilot reviewer useful in comparison with CodeRabbit, which can be used in this OSS project. The decision is of course up to team. But myself as a main code contributor here, will not be using copilot reviewer. I am happy for discussion about the development workflow to understand yours better. I do an agent development on the other repository with same repo settings, and everything works correctly.

Copy link
Contributor

@miroslavpojer miroslavpojer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see no use rulesets and no instruction file for copilot reviewer.

- Handlers: `HandlerApi`, `HandlerToken`, `HandlerTopic`, `HandlerHealth` in `src/handlers/`
- Writers: `WriterEventBridge`, `WriterKafka`, `WriterPostgres` in `src/writers/` (inherit from `Writer` base class)
- Config: `conf/config.json`, `conf/access.json`, `conf/topic_schemas/*.json`
- Routes defined in `ROUTE_HANDLERS` dict in `event_gate_lambda.py`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

During the time there were several talks about experiences. See latest version in Release Notes Generate, There is last version mixing yours and my style.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.github/copilot-instructions.md:
- Line 11: Update the sentence that currently reads "Terraform scripts are not
part of this repository" to clarify that production Terraform scripts are
excluded but example configurations exist; replace it with: "Production
Terraform scripts are not part of this repository; see terraform_examples/ for
reference configurations only." Ensure the phrasing appears in the same
paragraph/section where the original sentence is located so readers understand
the terraform_examples/ directory contains non-production examples.
🧹 Nitpick comments (1)
.github/copilot-instructions.md (1)

24-24: Consider clarifying the scope of the lazy initialization pattern.

The directive that __init__ methods "must not raise exceptions" is prescriptive. While lazy initialization is valuable for deferred resource connections (writers, clients), fail-fast validation for required parameters or invalid arguments in constructors is also a valid pattern. Consider softening to: "__init__ should defer expensive operations (connections, I/O) to first use; validate required parameters immediately."

📖 Proposed refinement
-- `__init__` methods must not raise exceptions; defer validation and connection to first use (lazy init)
+- `__init__` should defer expensive operations (connections, file/network I/O) to first use; validate required parameters immediately

@tmikula-dev
Copy link
Collaborator Author

I see no use rulesets and no instruction file for copilot reviewer.

As I mentioned in the last respond. In our team, we do not use the copilot reviewer, prefer the CodeRabbit tool instead. So for us in the moment it would be only extra file to take care about. It is just not relevant to our situation and workflow at the moment, might add later. I also looked at your solution and went one section after another. I updated our current copilot instructions in the commit: d8a70ef. Lot of the information in your solution were redundant to our current state, but I added some of them as well. I would look at your and review it again, since it is a lot human-like readable not needed for the copilot (sentences with dots, structuring the areas, explaining the ideas of conditions too much, which is default etc.)

@tmikula-dev tmikula-dev merged commit 514e7cf into master Feb 10, 2026
9 checks passed
@tmikula-dev tmikula-dev deleted the feature/107-copilot-configuration branch February 10, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Project Copilot configuration

3 participants